Open it on your Mac, PC or iPad for the full three-pane cockpit.
Kingsleigh OS
Sign in to Kingsleigh OS
Sign in with your email — you only see the tools & data your role allows.
{{ rememberMark }}Keep me signed in on this Mac
Forgot password?
Have an invite code? Set up →
Locked out? Ask your administrator to re-send your invite from Users & access.
Check your email — enter the code below within 30 minutes.
We email a code to your account address. No email on your account? Ask an admin (Jordan or Shawn) to reset you.
← Back to sign in
← Back to sign in
Runs entirely on this Mac. Each person sees only what their role allows — Directors & Admin see everything; office, trade and insurer accounts see only their tools. Admins manage accounts & passwords in Users & Access.
Kingsleigh OS — The Operating System
{{ s.name }}
{{ g.label }}
● {{ uiModeLabel }} view
{{ sessInitial }}
{{ sessName }}
{{ roleLabel }}
Stage 10 · Director's Desk
{{ deskGreeting }}
{{ today }} · {{ deskSummary }}
◧
No claims yet — create your first instruction
Raise the job card and Kingsleigh OS walks you through the whole claim, gate by gate — survey, price, mobilise, invoice.
EMPTY YOUR HEADEVERYTHING LANDS SOMEWHERE · NOTHING IS LOST
FILED TODAY✓ {{ ch.text }}nothing yet — first thought of the day goes here{{ dump.weekCount }}
JARVISON THE DESK · BRIEFED LIVE
{{ deskSummary }} — ask me anything about the money, the queue or the field.
{{ m.who }}
{{ m.text }}
Jarvis is thinking…
DID✓ {{ s.label }}
{{ d.title }}{{ d.badge }}
{{ d.body }}
ONE-CLICK · YOUR CONFIRM
{{ a.title }}
{{ a.why }}
→ {{ aiResult.cta }}
✦ The Daily Run✓ Day cleared — Jarvis is watching{{ jarvisHub.pending }}of {{ jarvisHub.total }} to clear · ≈{{ jarvisHub.estMin }} min◉ {{ jarvisHub.countCompliance }}£ {{ jarvisHub.countMoney }}▤ {{ jarvisHub.countComms }}
✦ Jarvis — what needs doingReads the gates and proposes actions — nothing runs until you confirm.
Tap Check this job — Jarvis reads the stage, scope, CPP, PO and sign-off, then lists exactly what to do next.
Reading the job…
{{ job.jarvis.narrative }}
✓{{ job.jarvis.headline }}
{{ a.sevLabel }}{{ a.title }}
{{ a.why }}
{{ a.kindWhat }}
✓{{ a.doneMsg }}
Skipped — tap Re-check to bring it back.
▶ Run the job{{ wfStageLabel }}step {{ wfStepNo }}⛑ {{ wfAuditMeter }}
✓
{{ wfTitle }}
{{ wfDo }}
{{ wfNoteLabel }}{{ wfNote }}
⛓ Satisfies gate · {{ wfGate }}
⛔ Compliance gate — don’t skip this silently
Tick it only when it’s genuinely done. If you must move on without it, override — a reason is required and goes on the audit trail.
⚠
Not yet — the system can check this one
{{ wfBlockedMsg }}
Stage progress {{ wfStageProgress }} · tick each step or hit “Done” to move on. The hard gates (asbestos, approval, signed RAMS, Sat Note) are flagged red.
Stage checklist — {{ job.stageChecklistName }}
{{ job.stageChecklistProgress }}
✓{{ c.item }}
No checklist defined for this stage.
Costing & margin
{{ job.marginBadge }}
End figure to invoice
{{ job.value }}
net of {{ job.feeLabel }}
{{ job.feeDeductedLine }}
{{ job.approvedVarnLine }}
Cost
{{ job.cost }}
materials + subs, net CIS
Est. profit
{{ job.profit }}
Margin
{{ job.margin }}
target 40% · 30%+ healthy
0%healthy 30%target 40%
Variations— held off value until approved
{{ v.status }}
{{ v.desc }}
{{ v.amount }}
No variations logged.
Job folder · OneDrive
{{ fo.icon }}{{ fo.name }}
£ Money
{{ job.money.hint }}{{ job.money.chev }}
Following the money…
The money feed isn't available on this machine yet — the figures still live in Costing & margin above.
Split so people actually read and sign them: the CPP, one RAMS per trade, and the QR induction sheet for the site entrance — instead of one 200-page pack.
Job folder & photos
{{ job.folderStatus }} · OneDrive
Upload photos →
Files in this job's OneDrive folder
{{ f.cat }}{{ f.name }}
Photos drop straight into 4) Photos (Survey / WIP / Sign-Off) in the job's OneDrive folder. New cards raise the folder automatically.
📷 Evidence
{{ job.evid.hint }}no photos on a live job{{ job.evid.chev }}
Reading the photo timeline…
The photo timeline isn't available on this machine yet — photos still live in the job's OneDrive folder above.
No photos filed yet — evidence protects every claim. Add them to the job folder or capture on site.
{{ ch.label }}
{{ cat.label }} · {{ cat.count }}
Activity & weekly log
auto-captured to the card
{{ ac.when }}
{{ ac.text }}
Stage 3 · Costing Sheet Master
Estimator
Claim
Pricing {{ estJobRef }} · inline RICS-style rates
⌖ {{ priceListLabel }}
⊞ {{ classLabel }}
Price the claim here — this is your one costing sheet. Want a second opinion? Cross-check it.
⚖ vs {{ benchmark.sourceTag }}▲ {{ benchmark.above }} above▼ {{ benchmark.below }} below= {{ benchmark.at }} onmedian {{ benchmark.medLabel }} vs schedulesample rates — import a real schedule to make this live
Enter W×D×H and it computes floor, ceiling, net wall (minus doors/windows) & skirting. Click a room to make it active, then add elements — they take that room's area for the surface chosen.
Add a room above, then add elements from the rate library — they'll take the room's measured area.
PC sum allowancesprovisional / prime-cost — kitchens, bespoke, supply-only{{ pcTotal }}
{{ p.desc }}
{{ p.amount }}
No PC sums. Add an allowance for items not yet specified (e.g. kitchen supply). PC sums are pass-through — they add to the job value but carry no margin.
Live margin protection
{{ est.margin }}
gross margin
0%{{ est.targetLabel }}60%
{{ est.protIcon }}{{ est.protMsg }}
{{ r.label }}{{ r.val }}
Delivery & overhead recovery
Lines KH self-deliver (KH) keep the labour value; subbed lines (SUB) contribute only the markup. Toggle KH/SUB on each scope line.
One claim, one path — the detailed schedule. The step-by-step path is the guided path.
Job name
{{ progHeader.jobName }}
Job no
{{ progHeader.jobNo }}
Job address
{{ progHeader.jobAddr }}
{{ progHeader.datesNote }}
Task / trade
DAY
{{ d.n }}
{{ t.name }}
{{ t.trade }}
{{ t.name }}{{ t.durLabel }}
Edit programme · tasks, trades & dates for this job
Task
Trade
Start day
Days
{{ progNote }}
Labour Diary · KH Contractor List · PQQ
Subbies & Labour
Labour diary · this week
{{ k.label }}
{{ d }}
{{ r.name }}
{{ r.trade }}
{{ c.label }}
No labour allocations yet. This diary fills from your live job board once the Labour Diary / Asana wiring is connected — real operative & subbie allocations will appear here then. Nothing is shown until there's real data.
Contractor directory
{{ subCount }} contactsAdd emails to enable one-click contact. Book only against a current PQQ + H&S audit.
ShowClick a trade's light to flag — ● good · ● caution · ● issues. Saved & kept across updates.
Point this Mac at your live data, then share it with the team. Each person sets these once on their own machine.
1 · OneDrive job folder
{{ folderBadge }}
{{ folderRootStatus }}
2 · Asana live board
LIVE
Paste your Asana Personal Access Token to drive the job board live. Without it, the app shows the last bundled snapshot.
3 · Contractor network
{{ settingsContractorCount }} trades & suppliers loaded from your sheet, each with a traffic-light status you set in Subbies & Labour. Rebuild after you update the sheet.
4 · Share with the office (LAN)
{{ netShare.statusLabel }}
Turn on to let staff on the office network open this app in a browser — no install needed. Your Mac must stay on.
{{ netShare.url }}
5 · One live server for the whole team
CONNECTED · {{ remoteHost }}
This app is a live client of the office server at {{ remoteHost }} — everyone connected here works on the SAME jobs, scopes and traffic lights, live.
Running standalone — this Mac's own data. To work off the office live server instead (one shared state for the whole team), enter its address from card 4 on the host Mac and connect. The app reconnects to it on every launch, and falls back to standalone if it's off.
6 · Removed cards {{ removedCount }}
Cards you removed from the board (e.g. tester cards). Their folders/data are untouched — restore any time.
{{ rc.no }}
Advanced integrations (Xero, Claude, Netlify, email intake, passcode) live in Operating System.
Stage 5 · Materials Request · Quantity Calculator
Materials
Material take-off — generated
{{ matJobRef }}
Add the elements + areas (m²/LM) and the app generates the consolidated material list for this job — quantities straight from your Materials Quantity Calculator.
Elements in this take-off
{{ l.name }}
{{ l.trade }}
{{ l.unit }}
No elements yet. Add from the list, or pull from the estimator scope.
Add an element
{{ g.trade }}
▣ Material list{{ matGenCount }} items
{{ r.material }}{{ r.qty }}
Add elements to generate the consolidated material list.
Customer materials request · like-for-like
Room
Material
Qty
Budget
{{ m.room }}
{{ m.material }}
{{ m.qty }}
{{ m.budget }}
{{ m.statusLabel }}
{{ m.choice }}
No customer material choices captured yet — these populate from a job's scope & the customer's like-for-like selections once wired. Nothing is shown until there's real data.
Approved suppliers · assessed by the Quality Management team
{{ g.cat }}
{{ nm }}
Stages 8–10 · Payments tracker · Figures Sheet
Payments & figures
Awaiting & settled
Job
Client
Value
Due
Status
{{ p.no }}
{{ p.client }}
{{ p.cis }}
{{ p.amount }}
{{ p.due }}
{{ p.statusLabel }}
Figures · this month
{{ f.label }}{{ f.val }}
Overhead recovery
{{ overheadRecovered }}
Monthly gross profit {{ mtdGP }} clears the {{ overhead }} overhead — net-positive. Wages for Jordan & Shawn sit below this line, not in job cost.
Monthly P&LFigures Sheet · 10 Jun
Month
Turnover
Profit
Margin
{{ m.month }}
{{ m.margin }}
Total
{{ figuresTotal.turnover }}
{{ figuresTotal.profit }}
{{ figuresTotal.margin }}
Monthly overhead (On Costs)
From the Figures Sheet. Every job must clear its share of this.
{{ c.desc }}
Total + 30%{{ onCostTotal }}
↯ Cash-flow & Triver · 13 weeks forward
{{ fcVerdict }}
Every number below traces to an invoice, a bill, the wage runs or the VAT reclaim — placed by each insurer's real payment habits. Click any week for its receipts.
Set this whenever the bank moves — the 13 weeks rebuild from it.
Triver facility
{{ f.label }}
{{ f.outstanding }}
{{ f.next }}
No draws recorded. Add any live Triver draws (amount, rate, repayment date) so repayments land in the right weeks.
{{ fcPlan.title }}
{{ fcPlan.line }}
Nothing is drawn without you — this switches the ledger to “fixes applied” so you can see it working.
Borrowing is a timing tool here, not a habit — the war chest is what retires it for good.
What I'm assuming
{{ a.chip }}
{{ a.text }}
Wrong assumptions make wrong forecasts — tell Jarvis and the 13 weeks rebuild.
Actual costs · true margin
Cost Tracker
{{ costError }}
{{ k.label }}
{{ k.value }}
{{ k.sub }}
Every job — model vs truth{{ costRowCount }} jobsReading every ledger…
Job
Client · network
Stage
Sell
Model
Actual
True margin
Ledger
{{ r.no }}
{{ r.client }}
{{ r.provider }}
{{ r.stage }}
{{ r.sell }}
{{ r.model }}
{{ r.actual }}
{{ r.tm }}{{ r.delta }}
{{ r.chip }}
No jobs on the board yet — cards land here as soon as claims exist.
Worst true margin sits at the top; jobs still running on the model (—) sit last. Click any row to open its ledger and make its margin real.
JobReading the ledger…
No jobs yet — the cost ledger starts the moment the first claim lands.
{{ k.label }}
{{ k.value }}
{{ k.sub }}
Committed vs estimate{{ costBarCommitted }} · {{ costBarModel }}
model
PaidInvoicedOn POModel cost
Actual cost ledger{{ costLedgerCount }} lines
Date
Item · supplier
Ref
Status
CIS
Net £
{{ g.label }}
{{ l.date }}
{{ l.item }}
{{ l.note }}
{{ l.ref }}
{{ l.statusLabel }}
CIS
{{ l.net }}
No actual costs logged yet — the margin here is still the model. Log a day or a cost line to make it real.
Log a day
Half-day steps, at the day rate — it writes straight into the ledger.
Day rates unavailable — check the backend connection.
{{ costDayDays }}
Add a cost line
{{ costCisMark }}CIS deduction applies
Xero bills
Connect Xero and unmatched supplier bills will appear here to match against jobs.
Uses your existing Xero connection.
✦JARVIS
{{ costNudgeText }}
The automation layer
What the system does so Jordan doesn't have to
This is the part that replaces the constant chasing. Each is designed to run on Asana or a schedule, surfacing what needs attention rather than relying on memory. {{ autoLive }} live now — the rest are wired but not yet scheduled.
{{ a.icon }}
{{ a.title }}{{ a.badge }}
{{ a.desc }}
{{ a.cadence }}
Operations Manual v1.0 · 27 June 2026
The Kingsleigh Operating System
One documented, repeatable process so the business runs without any single person holding it in their head. The principle: Jordan runs the business solo, and the system carries the admin. Every recurring job, reminder and figure has a home, an owner and a control.
◇ Share on your network{{ netShare.statusLabel }}
This Mac becomes the host — Wayne, Shawn and anyone on the office network (Windows or Mac) open Kingsleigh OS in their browser and work on the same live data: jobs, estimates, figures and surveys all save here. No install on their machines. It's also how the cockpit reaches your iPad — open the Kingsleigh app on the iPad, tap Cockpit, and enter this address.
Coworkers & iPad open → {{ netShare.url }}
Office/home network only — the login screen still applies, and nothing is exposed to the internet. Changes take effect when you restart Kingsleigh OS. Last write wins if two people edit the same job at once.
▤ Jargon buster{{ glossaryCount }}
{{ glossaryIntro }}
{{ g.term }}
{{ g.plain }}
{{ g.why }}
The job lifecycle — one process, ten stages
Each stage carries a control that must be satisfied before the job moves on. The gates are the protection against time-wasting.
{{ s.n }}
{{ s.emoji }} {{ s.label }}
⛓ Gate · {{ s.gate }}
Template register
{{ t.t }}
{{ t.role }}
{{ t.stage }}
Your files → this app
Every uploaded template now has a home in the interface.
Token: asana.com → your profile photo → My Settings → Apps → Manage Developer Apps → + Personal Access Token. Stored only on this Mac. Once connected, pulls are live and stage moves / new jobs / dated programmes push back to the board (you confirm each push).
Xero — invoicing{{ xeroBadge }}
{{ xeroStatusLine }}
Create a free Web app at developer.xero.com. Register this exact redirect URI on it: {{ xeroRedirect }}. Paste the Client ID + Secret, Save, then Authorise. Invoices are raised as DRAFTS — you approve them in Xero. Stored only on this Mac.
AI assistant — Opus 4.8 on your Claude subscription, or Local{{ claudeBadge }}
{{ claudeStatusLine }}
Optional — Anthropic API key (only a fallback if the ‘claude’ CLI isn’t installed)
Claude (default): Jarvis runs on Opus 4.8 through your own claude CLI subscription — no API key, no per-token cost, just your normal plan limits. Local (free): runs on your Mac via Ollama (qwen2.5:14b) + Jarvis — private, offline fallback; install from ollama.com then ollama pull qwen2.5:14b. API key: only needed as a backup if the CLI isn’t installed — leave it blank to stay on the subscription. Everything stored only on this Mac.
Netlify — website forms{{ netlifyBadge }}
{{ netlifyStatusLine }}
Token at app.netlify.com → User settings → Applications → Personal access tokens. Pulls the contact / project-submission / trade-registration forms into Enquiries & Intake, where a project submission converts straight into a New Instruction.
Job intake — supplier inbox{{ jobIntakeBadge }}polls every ~10 min while the app runs
{{ jobIntakeStatusLine }}
Suppliers email jobs@kingsleighhomes.co.uk → your Outlook rule files each one into a mailbox folder → this reads that folder straight from Microsoft 365 (a modern sign-in, no password stored). New instructions land in the triage queue below.
FOLDER
Finish the sign-in in your browser:
1. Go to {{ msDeviceUrl }}
2. Enter this code, then approve Mail.Read:
{{ msDeviceCode }}
Waiting for approval… this panel connects automatically once you approve.
Signed in as {{ msMailbox }} — the folder is read securely; nothing in your mailbox is changed or marked read.
Reads a Gmail relay over IMAP with an app password. Use this only if you route jobs@ to a dedicated Gmail instead of reading Microsoft 365 directly.
App password saved on this Mac — leave the password box blank to keep it; type a new one to replace it.
Nothing waiting — new supplier instructions land here.
OneDrive — job folders{{ folderBadge }}
{{ folderRootStatus }}
This is the locally-synced OneDrive folder the app reads & writes (KH00XX job folders, photos, H&S packs). On a second machine, point it at that machine's copy. Browse… opens a native picker inside the app; in a browser, type or paste the path then Save.
Data & privacy
This app holds policyholder personal data (names, addresses, photos). It runs only on this Mac (127.0.0.1) — nothing is exposed to the network. Records are kept in your OneDrive job folders and ~/Library/Application Support/Kingsleigh OS/. When a job is closed you can archive its folder as a retention record (Job Command → close, or the walkthrough's last step).
The passcode is a convenience lock that prompts on launch. Your data's real GDPR protection is your Mac account login + FileVault — turn FileVault on in System Settings → Privacy & Security.
Connected systems
Asana— ⌂ KH Job Pipeline board, the live control hub.
Xero— invoices, payments, cash position, CIS.
OneDrive— KH00XX job folders, mobile claims workspace.
Claude / CoWork— does the heavy lifting; reads files, builds costings.
Website— two-way: enquiries create New Instruction cards; job status mirrors back to a customer tracking page.
Next steps · for Claude Code
This is the interface. Wiring it to live data is the build.
→{{ n }}
The operating system · Playbook
{{ pbTitle }}
{{ pbMetaLine }}
{{ pbStats }}
One claim, one path — the full reference playbook. For the next action on the current claim, use the guided path.
Working job{{ pbCurJobNo }}{{ pbCurStageLabel }}
{{ pbCurStageName }}
{{ pbCurProgress }}
✓{{ c.item }}
No checklist defined for this stage.
{{ pbAdvanceHint }}
{{ s.n }}
{{ s.name }}
{{ s.owner }}
Trigger · {{ s.trigger }}
Tick list
▢{{ c.item }}
Documents
{{ d.dirLabel }}{{ d.name }}
Watch · traffic lights
◉ {{ tl.t }}
⛓ Gate · {{ s.gate }}
Traffic-light rule book
Every RAG rule from the spreadsheets, exact thresholds — the colour means the same here as it did in Wayne's sheets.
{{ r.system }}
{{ r.range }}
{{ r.meaning }}
{{ r.thresholds }}
Document register
{{ d.name }}
{{ d.audience }} · {{ d.stage }}
{{ d.dirLabel }}
{{ d.gen }}
Health & Safety · Compliance hub
H&S & Compliance
Subcontractor compliance, RAMS & COSHH, and per-job pre-construction packs — from the contractor portal, in your ops app.
PL = Public Liability · EL = Employers' Liability · H&S = SSIP/CHAS audit · RAMS = method statements on file. Derived from each sub's PQQ / onboarding status — the live portal holds exact certificate expiry dates per subcontractor.
{{ r.title }}
{{ r.tags }}
{{ hsRamsReader.title }}
{{ hsRamsReader.tags }}
Hazards & controls
{{ h.hazard }}
Activity · {{ h.activity }}
Who · {{ h.who }}
{{ h.controls }}
Scope & method
{{ hsRamsReader.body }}
{{ c.name }}
{{ hsCoshhReader.name }}
Health hazards
• {{ x }}
First aid
{{ f.k }}
– {{ line }}
Controls
• {{ x }}
Storage & disposal
• {{ x }}
• {{ x }}
Pre-construction / CPP pack
Generates a Construction Phase Plan pack — a CDM requirement: site-wide RAMS, trade RAMS, COSHH and the risk matrix — for the selected job, ready to print or save as PDF. Built offline from the same KHCPPV1 generator as the portal.
Job
{{ hsCppJob }}
Peril (CPP)
{{ hsCppPeril }}
Opens the pack pre-filled from the job (claim, address, peril, insurer, policyholder). Pick the trades on the pack page, then Print / Save as PDF. For the full controlled H&S document library, open the live portal.
Admin · accounts, roles & permissions
Users & Access
Create accounts, set roles & per-section permissions, change passwords, and issue one-time invites to give anyone access to the app.
Create an account
Name
Email
Role
Sections this account can access
Roles: Admin = full control incl. this screen · Office = full app · Trade/Insurer = the Network Portal scoped to them · Custom = pick exactly which sections. A one-time invite is generated; share it so they set their own password (no plaintext passwords are stored).
Accounts
{{ userCount }}
Name
Email
Role
Access
Sign-in
Actions
{{ u.name }} {{ u.statusLabel }}
{{ u.email }}
{{ u.perms }}
{{ u.pwLabel }}
For the App-Store rollout to subcontractors, these accounts map onto the portal's hosted login (the production wiring). Locally they let you and Shawn run as admins and grant a future ops hire exactly what they need.
Website · contact & project submissions
Enquiries & Intake
Trade contact-us, project submissions and trade registrations from kingsleighhomes.co.uk land here for you to action — convert a project submission straight into a New Instruction.
{{ intakeSource }}
{{ i.name }}{{ i.contact }}{{ i.when }}
{{ i.message }}
No enquiries in this view yet. The website forms (enquiry, quick-question, trade-registration) post to Netlify — connect Netlify in Operating System to pull them in live, or they're added here as they arrive.
Live pull needs your Netlify access token (the site uses Netlify Forms). Until then this shows any captured locally; the convert-to-job flow is fully working.
Stages 1–2 · Survey Worksheet 4.0
Survey Worksheet
{{ surveyJobRef }}
Triage, surveyor info, per-room worksheet notes and the PCIP hazard sweep — saved to this job as you go.
Start or pick a claim
This screen works on one claim at a time.
Triage header
{{ t.field }}
Worksheet notes — by room
No rooms yet. Add the affected rooms — each carries its own construction notes that drive the scope.
{{ r.room }}
Wall
Ceiling
Subfloor
Floor finish
Surveyor info & access
{{ s.field }}
PCIP hazard sweep
{{ surveyPcipSel }} / {{ surveyPcipTotal }}
Tick every hazard present — each carries into the CPP and the per-trade RAMS.
One claim, one path — this is the detailed master tracker. The same steps, guided one at a time, live in the guided path.
All open jobs — pick one to track
{{ j.no }}{{ j.pct }}
{{ j.client }}
Start or pick a claim
This screen works on one claim at a time.
{{ checkJobRef }}
{{ checkClient }}
{{ l.label }}
{{ p.label }}{{ p.count }}
{{ it.item }}{{ it.stateLabel }}
Day-rate model · Labour & Materials Calculator
Labour & Materials
A quick day-rate × markup cost build — use it to cross-check the composite estimator or when you price a job by labour days and materials rather than by SOR line.
Cross-check tool — your main costing sheet is the Estimator. Use this to sanity-check a price by labour days and materials.
Labour · day rate × days × markup
Trade
Days
Cost
Sell
{{ l.trade }}
{{ l.rate }}/day
{{ l.cost }}
{{ l.sell }}
No labour yet — add a trade below.
Materials · part units round up
Item
Qty
Order
Sell
{{ m.item }}
{{ m.note }}
{{ m.order }}
{{ m.sell }}
No materials yet — pick one from the list above.
Build total
Labour (sell){{ labLabourSell }}
Materials (sell){{ labMaterialsSell }}
Total cost{{ labTotalCost }}
Total sell{{ labTotalSell }}
Margin{{ labMargin }}
{{ labMarkupNote }}
QS coverage library · measured take-off
Coverage & Quantities
Every reinstatement material with its coverage yield and the source behind it. Browse the library, or pick a subject, enter a measured quantity, and turn it into a rounded order list — every number traceable.
{{ covStat }}
Cross-check tool — your main costing sheet is the Estimator. Use this for traceable quantities and a measured-take-off sense check.
Pick a subject
Measured quantity
This subject is priced by measure / prime-cost — there are no material yields to calculate. Its items are listed on the right.
▣ Order list
{{ toSummary }}
{{ l.name }}{{ l.qtyText }}{{ l.costText }}
{{ l.math }}
{{ l.priceLine }}
{{ l.costNote }}
{{ l.confText }}
{{ l.basis }}
{{ l.packNote }}
{{ l.source }}
No materials in this subject.
Your cost (trade — private){{ toCostSubtotal }}
Your margin (charge − cost){{ toMarginSubtotal }}
Charge into scope (RRP + {{ toMarkupPct }}){{ toMaterialSubtotal }}
Charge = RRP (retail list) + {{ toMarkupPct }} — what the insurer sees. Your trade cost stays private; margin = charge − cost. Materials only (ex-labour).
No materials match — widen the filters or clear the search.
Does this job clear net — fully subbed?
Materials @ RRP (keep the discount) · labour at your actualised travel-adjusted cost · overhead per job · margin. The verdict is on the FULLY-SUBBED net — a job that only clears on your own back doesn’t scale. {{ viabRecoveryNote }} recovery methods available in the playbook.
Paste the insurer scope → auto-derive materials
One line per item (with its measured qty). Room headers (Kitchen, Bathroom…) set the tiling/plaster system. Labour-only lines are skipped — no invented materials.
{{ viabRecError }}
{{ viabRecSummary }}
+ {{ x.line }}{{ x.val }}
{{ f.line }}{{ f.val }}
Recovery total dropped into the Recovery field. All defensible — firm at final account.
{{ viabMatError }}
{{ viabMatSummary }}
{{ m.line }}{{ m.val }}
{{ viabMatUnmatched }} · charge dropped into the Materials field below.
{{ viabMatNeedsCount }} matched material(s) need a price — NOT counted in the totals above (never buried at £0)
{{ m.line }}
{{ m.note }}
Peril:
{{ viabCompError }}
{{ viabCompSummary }}
{{ c.ref }}{{ c.item }}
{{ c.trigger }}
{{ c.justification }}
{{ c.evidence }}
Tick the ones that genuinely apply and add them to the schedule — each is a real, defensible line with its own rate. That’s where the margin is.
{{ viabError }}
{{ vProdHrs }} productive hrs/day on the tools after travel.
{{ r.l }}{{ r.v }}
NET — you performing
{{ vNetYou }}
{{ vNetYouPct }}
NET — fully subbed (scalable)
{{ vNetSub }}
{{ vNetSubPct }}
{{ vVerdict }}
✦ {{ aiTitle }}
Ask Jarvis about the money, the action queue, the field surveys or any job — he answers briefed on the live business.